<?php 
/**
 * CUSTOME BY TRAN DINH HOANG HAC
 */
require('UploadHandler.php');
class Cms_Image_UploadHandlerCustom extends  UploadHandler{
	
	//public
	protected $resultFile;
	
	//lay ten file | Thong tin
	public function getFileName(){
		return $this->resultFile;
	}
	
	//override
	protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
			$index = null, $content_range = null) {
		
		$name = time().'-'.rand(1000,9999).'-'.$name;
		$file = new stdClass();
		$file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error,
				$index, $content_range);
		$file->size = $this->fix_integer_overflow(intval($size));
		
		$file->type = $type;
		
		if ($this->validate($uploaded_file, $file, $error, $index)) {
			$this->handle_form_data($file, $index);
			$upload_dir = $this->get_upload_path();
			if (!is_dir($upload_dir)) {
				mkdir($upload_dir, $this->options['mkdir_mode'], true);
			}
			$file_path = $this->get_upload_path($file->name);
			$append_file = $content_range && is_file($file_path) &&
			$file->size > $this->get_file_size($file_path);
			if ($uploaded_file && is_uploaded_file($uploaded_file)) {
				// multipart/formdata uploads (POST method uploads)
				if ($append_file) {
					file_put_contents(
					$file_path,
					fopen($uploaded_file, 'r'),
					FILE_APPEND
					);
				} else {
					move_uploaded_file($uploaded_file, $file_path);
				}
			} else {
				// Non-multipart uploads (PUT method support)
				file_put_contents(
				$file_path,
				fopen('php://input', 'r'),
				$append_file ? FILE_APPEND : 0
				);
			}
			$file_size = $this->get_file_size($file_path, $append_file);
			if ($file_size === $file->size) {
				$file->url = $this->get_download_url($file->name);
				if ($this->is_valid_image_file($file_path)) {
					$this->handle_image_file($file_path, $file);
				}
			} else {
				$file->size = $file_size;
				if (!$content_range && $this->options['discard_aborted_uploads']) {
					unlink($file_path);
					$file->error = $this->get_error_message('abort');
				}
			}
			$this->set_additional_file_properties($file);
		}
		$this->resultFile=$file;
		return $file;
	}
}
?>